package grafica.controladores;

import grafica.ventanas.Ventana;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
import java.util.Properties;

import logica.IFachadaRemota;

public abstract class Controlador {

	protected IFachadaRemota ifr;
	protected Ventana vent;
	protected boolean estaConectado;
	
	public Controlador(){
		estaConectado = false;
	}
	
	public void conectar()
	{
		Properties p = new Properties();
		String nomProp = "properties/project.properties";
		try {
			p.load(new FileInputStream(nomProp));
			String ip = p.getProperty("ipServidor");
			String puerto = p.getProperty("puertoServidor");
			String ruta = "//" + ip + ":" + puerto + "/obj";
			ifr = (IFachadaRemota) Naming.lookup(ruta);
			
			//esto era para probar si habia conexion, ahora no habria que sacarlo??
			if (ifr.Ping())
			{
				System.out.println("Se pudo establecer conexion");
				estaConectado = true;
			}				
			else
				System.out.println("ERROR, no se pudo establecer conexion");

		} catch (FileNotFoundException e) {
			estaConectado = false;
			vent.mostrarMensajeError(e.getMessage() + "\nArchivo project.properties no encontrado");
		}  catch (NotBoundException e) {
			estaConectado = false;
			vent.mostrarMensajeError(e.getMessage() + "\nProblema al conectarse al servidor");
		} catch (RemoteException e) {
			estaConectado = false;
			vent.mostrarMensajeError(e.getMessage() + "\nProblema al conectarse al servidor");
		} catch (MalformedURLException e) {
			estaConectado = false;
			vent.mostrarMensajeError(e.getMessage() + "\nURL mal formada");
		} catch (IOException e) {
			estaConectado = false;
			vent.mostrarMensajeError(e.getMessage() + "\nProblema al cargar project.properties");
		} 

	}
	
	public boolean textoVacio(String txt) 
	{
		return (txt.trim().length() == 0);
	}
	
}
